#ifndef _EXTENSION_SNIFFER_H
#define _EXTENSION_SNIFFER_H

#define SNIFFER_MAX_INTERFACES 128 // let's hope interface index don't go above this value
#define SNIFFER_MAX_QUEUE  200000 // ~290Mb @ 1514 bytes

/*
 * TLV message types.
 */

#define TLV_TYPE_EXTENSION_SNIFFER 0

#define TLV_TYPE_SNIFFER_INTERFACES \
	MAKE_CUSTOM_TLV( \
		TLV_META_TYPE_GROUP, \
		TLV_TYPE_EXTENSION_SNIFFER, \
		TLV_EXTENSIONS + 1)

#define TLV_TYPE_SNIFFER_INTERFACE_ID \
	MAKE_CUSTOM_TLV( \
		TLV_META_TYPE_UINT, \
		TLV_TYPE_EXTENSION_SNIFFER, \
		TLV_EXTENSIONS + 2)

#define TLV_TYPE_SNIFFER_INTERFACE_HANDLE \
	MAKE_CUSTOM_TLV( \
		TLV_META_TYPE_UINT, \
		TLV_TYPE_EXTENSION_SNIFFER, \
		TLV_EXTENSIONS + 3)

#define TLV_TYPE_SNIFFER_PACKET_COUNT \
	MAKE_CUSTOM_TLV( \
		TLV_META_TYPE_UINT, \
		TLV_TYPE_EXTENSION_SNIFFER, \
		TLV_EXTENSIONS + 4)

#define TLV_TYPE_SNIFFER_BYTE_COUNT \
	MAKE_CUSTOM_TLV( \
		TLV_META_TYPE_UINT, \
		TLV_TYPE_EXTENSION_SNIFFER, \
		TLV_EXTENSIONS + 5)

#define TLV_TYPE_SNIFFER_EXCLUDE_PORTS \
	MAKE_CUSTOM_TLV( \
		TLV_META_TYPE_GROUP, \
		TLV_TYPE_EXTENSION_SNIFFER, \
		TLV_EXTENSIONS + 6)

#define TLV_TYPE_SNIFFER_INCLUDE_PORTS \
	MAKE_CUSTOM_TLV( \
		TLV_META_TYPE_GROUP, \
		TLV_TYPE_EXTENSION_SNIFFER, \
		TLV_EXTENSIONS + 7)

#define TLV_TYPE_SNIFFER_PACKETS \
	MAKE_CUSTOM_TLV( \
		TLV_META_TYPE_GROUP, \
		TLV_TYPE_EXTENSION_SNIFFER, \
		TLV_EXTENSIONS + 8)

#define TLV_TYPE_SNIFFER_PACKET \
	MAKE_CUSTOM_TLV( \
		TLV_META_TYPE_RAW, \
		TLV_TYPE_EXTENSION_SNIFFER, \
		TLV_EXTENSIONS + 9)

#define TLV_TYPE_SNIFFER_ADDITIONAL_FILTER \
	MAKE_CUSTOM_TLV( \
		TLV_META_TYPE_STRING, \
		TLV_TYPE_EXTENSION_SNIFFER, \
		TLV_EXTENSIONS + 10)

#endif
